// 用户管理模块的接口
import request from "@/utils/request"
import type { User, UserInfoResponseData, RoleInfoResponseData, SetRoleData } from './type'

enum API {
   // 获取已有用户的信息
   ALLUSER_URL = '/admin/acl/user/',
   // 添加一个新的用户账号
   ADDUSER_URL = '/admin/acl/user/save',
   // 修改用户信息
   UPDATEUSER_URL = '/admin/acl/user/update',
   // 根据角色id获取职位数据(包括全部职位数据和当前用户的职位数据)
   ROLEINFO_URL = '/admin/acl/user/toAssign/',
   // 给已有用户分配角色的接口
   SETROLE_URL = '/admin/acl/user/doAssignRole',
   // 删除某一个账号的接口
   DELETEUSER_URL = '/admin/acl/user/remove/',
   // 批量删除账号的接口
   DELETEUSERLIST_URL = '/admin/acl/user/batchRemove'
}

// 获取用户信息的接口方法
export const reqUserInfo = (page: number, limit: number, username: string) => request.get<any, UserInfoResponseData>(API.ALLUSER_URL + `${page}/${limit}/?username=${username}`)
// 添加一个用户信息的接口方法
export const reqAddOrUpdateUserInfo = (data: User) => {
   if (data.id) {
      // 有id则为更新用户信息
      return request.put<any, any>(API.UPDATEUSER_URL, data)
   } else {
      // 否则为添加新的用户信息
      return request.post<any, any>(API.ADDUSER_URL, data)
   }
}
// 获取职位信息的接口方法
export const reqGetRoleInfo = (userId: number) => request.get<any, RoleInfoResponseData>(API.ROLEINFO_URL + userId)
// 给已有用户分配职位的接口方法
export const reqSetRole = (data: SetRoleData) => request.post<any, any>(API.SETROLE_URL, data)
// 删除某一个账号信息
export const reqRemoveUser = (userId: number) => request.delete<any, any>(API.DELETEUSER_URL + userId)
// 批量删除账号信息
export const reqRemoveUserList = (idList: number[]) => request.delete<any, any>(API.DELETEUSERLIST_URL, { data: idList })